using System.Collections.Generic;
using App.Modelo.Interfaces;
using App.Persistencia;
using App.SolInf.Modelo;
using NHibernate;

namespace App.SolInf.Controlador
{
    public class ControladoraProveedores : IControladora, IControladoraAbm
    {
        public ISessionActual Session { get; set; }
        public IRepositorio Repositorio { get; set; }

        public void Alta(object item)
        {
            Repositorio.SaveObject(item);
        }

        public void Modificar(object item)
        {
            Repositorio.UpdateObject(item);
            Repositorio.FlushSession();
        }

        public void Baja(object item)
        {
            Repositorio.DeleteObject(item);
        }

        public ICriteria Consultar()
        {
            return ((Repositorio) Repositorio).CreateCriteria<Proveedor>()
                .CreateAlias("Documento", "Documento");
        }

        public IList<Proveedor> Listar()
        {
            return Repositorio.GetAll<Proveedor>();
        }
    }
}